/*
 * Copyright 2008 Karel Klic.
 * This file is part of Oslavanský Bot.
 * 
 * Oslavanský Bot is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.

 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package categorybot;

/**
 * Appends a category to the word text on the right place.
 */
public class CategoryAppender {

  /**
   * Appends a category to the word text on the right place.
   * @param text
   * Word definition text. Wiki syntax. Multiple lines ok.
   * Cannot be null.
   * @param categoryId
   * Category name without category prefix and without brackets.
   * @return
   * New word definition text that contains the category.
   */
  public static String appendCategory(String text, String categoryId) {
    int offset = CategoryPlaceFinder.getOffset(text);

    StringBuffer buffer = new StringBuffer();

    // If this is the first category in the text, insert additional newline.
    if (!text.contains("[[Kategorie:")) {
      buffer.append("\n");
    }
    buffer.append("\n[[Kategorie:");
    buffer.append(categoryId);
    buffer.append("]]");

    return text.substring(0, offset) + buffer.toString() + text.substring(offset);
  }
}
